The vast majority of electronic devices include at least one microcontroller or microprocessor that controls the operation of the devices. In order to perform the desired functionality, the microcontroller will execute code or executable instructions for performing specific operations. The microcontroller may also retrieve data for performing the operations. The code and data are stored in a computer readable memory device. Increasingly, manufacturers are using solid-state nonvolatile memory devices, such as NAND flash memory devices, as the computer readable memory.
One issue that arises with NAND flash memory devices, however, is that read inability errors are more commonly observed in these devices. Read inability errors can be permanent such as a bad block error, e.g. a block has been physically damaged, or temporary such as a data retention error and a read disturb error. To cure a data retention error or a read disturb error, the microcontroller, upon detecting such an error, will initiate a refresh operation to refresh the memory block containing the error. A refresh operation restores the contents of the block by deleting the data from the block, and copying backup data into the block from a backup location. Bad block errors, however, cannot be cured by a refresh and tend to be more difficult to resolve. Furthermore, as the number of refresh operations performed increases, the probability of a bad block error occurring at a particular block increases.
To reduce the probability of a bad block error, some microcontrollers will wait a predetermined amount of time before performing a refresh operation, e.g., waiting weeks, months or years before performing a refresh operation. This method, however, assumes that there is a direct correlation between an elapsed time and read inability errors. Further, the predetermined amount of time may be too short, thereby resulting in too many refresh operations and increasing the probability of a bad block error. Conversely, the predetermined amount of time may be too long, thereby resulting in read inability errors for prolonged periods of time. Thus, there is a need for a better method for determining when to initiate a refresh operation.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.